package com.glb.gilibuy.service;

import com.github.pagehelper.PageInfo;
import com.glb.gilibuy.entity.Product;
import com.glb.gilibuy.entity.ProductCategory;
import com.glb.gilibuy.entity.ProductExample;

import java.util.List;
import java.util.Map;

/**
 * @Description:
 * @Author: Yingtian qian
 * @Date: 2021/7/30 10:43
 */
public interface ProductService {

    /**
     * @Description: 基础Dao方法：根据商品id获取单个商品信息
     * @param:
     * @return:
     */
    Product selectProductByProductId(String productId);
//
    /**
     * @Description: 基础Dao方法：根据分类id获取商品列表
     * @param:
     * @return:
     */
    List<Product> selectProductsByCategoryId(String categoryId, ProductExample orderBy, Integer greaterThan);

    /**
     * @Description: 基础Dao方法：根据多个商品id获取商品列表
     * @param:
     * @return:
     */
    List<Product> selectProductsByCategoryIds(String[] categoryIds, ProductExample orderBy, Integer greaterThan);

    /**
     * @Description: 基础Dao方法：商品列表搜索（管理员调用时，keyword为空查询全表）
     * @param:
     * @return:
     */
    List<Product> selectProductsByKeyword(String keyword, ProductExample orderBy, Integer greaterThan);

    PageInfo findProductsByCategoryIds(String[] categoryIds, ProductExample orderBy, Integer greaterThan);

    int addProduct(Product product);

    int updateProduct(Product product);

    List<Product> findAllProduct();
}
